In a virtual machine (VM) environment, one or more VM guests are hosted on a platform and may operate using multiple memory views. A memory view is a domain within a shared address space that is associated with a certain level of protection, privilege and/or security. A virtual machine monitor (VMM) may manage the guest software and operating systems and control view switching between the various software entities. This view switching may typically be accomplished by the VMM through management and updating of paging structures (e.g., page tables and extended page tables) that are configured to map or translate guest linear memory addresses to guest physical memory addresses, and ultimately to host physical memory addresses.
Security-critical software components at all privilege levels within a system generally depend on correct guest linear to guest physical address mappings. Some systems (e.g., legacy software) may allow untrusted software to modify page tables that affect those mappings. There is a need to support such legacy software while still enforcing controls on linear to physical mappings in order to provide a desired level of security.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications, and variations thereof will be apparent to those skilled in the art.